#include <stdio.h>

void main()
{
    // 1、算术运算符
    int a = 8;
    int b = -3;    /* 负值运算符（一元 -） */
    int c = +a;    /* 正值运算符（一元 +），几乎不用写 */
    int d = a + b; /* 加法（二元 +） */
    int e = a - b; /* 减法（二元 -） */
    int f = a * b; /* 乘法 */
    int g = a / b; /* 除法（整数除法向 0 取整） ,存在强制类型转换 */
    int h = a % b; /* 取余（只能用于整型） */

    printf("c = %+d\n", c);
    printf("d = %d\n", d);
    printf("e = %d\n", e);
    printf("f = %d\n", f);
    printf("g = %d\n", g);
    printf("h = %d\n", h);
    // 存在强制类型转换
    // 整数除法是整除，只会返回整数部分，丢弃小数部分
    printf("1/3 = %i\n", 1 / 3);
    // 如果希望得到浮点数的结果，两个运算数必须至少有一个浮点数，这时 C 语言就会进行浮点数除法
    printf("1/3 = %f\n", 1.0 / 3);
    printf("1/3 = %f\n", (double)1 / 3);

    // 赋值运算的简写形式
    int i = 10;
    i += 3; // 等同于 i = i + 3
    i -= 8; // 等同于 i = i - 8
    i *= 9; // 等同于 i = i * 9
    i /= 2; // 等同于 i = i / 2
    i %= 5; // 等同于 i = i % 5

    // 2、自增运算符，自减运算符
    // ++var在前返回自增之后的值
    // var++在后返回自增之前的值
    i++; // 等同于 i = i + 1
    i--; // 等同于 i = i - 1
}